package com.ruoyi.ring.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 我的戒指信息对象 az_ring_my_info
 * 
 * @author liuwp
 * @date 2025-10-15
 */
@Data
public class RingMyInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 设备sn */
    @Excel(name = "设备sn")
    private String deviceSn;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 颜色 */
    @Excel(name = "颜色")
    private String deviceColor;

    /** 尺寸 */
    @Excel(name = "尺寸")
    private String deviceSize;

    /** 版本号 */
    @Excel(name = "版本号")
    private String versionNumber;

    /** mac地址 */
    @Excel(name = "mac地址")
    private String macAddress;

    /** 序列号 */
    @Excel(name = "序列号")
    private String serialNumber;

    /** 激活日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "激活日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activationDate;

    /** 保修失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保修失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationDate;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("deviceSn", getDeviceSn())
            .append("deviceName", getDeviceName())
            .append("deviceColor", getDeviceColor())
            .append("deviceSize", getDeviceSize())
            .append("versionNumber", getVersionNumber())
            .append("macAddress", getMacAddress())
            .append("serialNumber", getSerialNumber())
            .append("activationDate", getActivationDate())
            .append("expirationDate", getExpirationDate())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
